package homework.five;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class newDemo {
    public static void menu() {
        System.out.println("欢迎来到员工信息管理系统");
        System.out.println("0.退出系统");
        System.out.println("1.添加员工");
        System.out.println("2.查询所有的员工");
        System.out.println("3.根据员工姓名查询");
        System.out.println("4.删除员工");
        System.out.println("5.根据员工编号查询");
        System.out.println("6.根据员工编号修改年龄");
        System.out.println("请选择你需要进行的操作");
    }

    public static void main(String[] args) {
        TestList testList = new TestList(); // 创建业务逻辑处理对象
        List<Emp> list = new ArrayList<>(); // 创建员工列表集合
        boolean flag = true; // 循环控制标志

        // 主菜单循环
        while (flag) {
            menu(); // 显示菜单
            Scanner scanner = new Scanner(System.in);
            int n = scanner.nextInt(); // 读取用户选择

            // 根据用户选择执行相应操作
            switch (n) {
                case 0:
                    flag = false; // 退出循环，结束程序
                    break;
                case 1:
                    // 添加员工功能
                    System.out.println("请输入员工信息");
                    System.out.println("1.请输入员工编号");
                    String empNumber = scanner.next();
                    System.out.println("2.请输入员工姓名");
                    String empName = scanner.next();
                    System.out.println("3.请输入员工年龄");
                    int empAge = scanner.nextInt();

                    // 创建员工对象并添加到列表
                    Emp addEmp = new Emp(empNumber, empName, empAge);
                    testList.addEmp(list, addEmp);
                    System.out.println(list); // 打印当前员工列表
                    break;
                case 2:
                    // 查询所有员工
                    testList.findAllEmp(list);
                    break;
                case 3:
                    // 根据姓名查询员工
                    System.out.println("请输入你需要查询的姓名");
                    Emp findEmp = testList.findEmpName(list, scanner.next());
                    System.out.println(findEmp);
                    break;
                case 4:
                    // 根据编号删除员工
                    System.out.println("请输入你需要删除的员工编号");
                    String number = scanner.next();
                    testList.deleteEmpNumber(list, number);
                    break;
                case 5:
                    // 根据编号查询员工
                    System.out.println("请输入你需要查询的员工编号");
                    String findNumber = scanner.next();
                    Emp emp = testList.findEmpNumber(list, findNumber);
                    System.out.println(emp);
                    break;
                case 6:
                    // 修改员工年龄
                    System.out.println("请输入你需要修改的员工编号");
                    String updateNumber = scanner.next();

                    // 先查询员工是否存在
                    Emp updateEmp = testList.findEmpNumber(list, updateNumber);

                    // 如果员工存在，则更新年龄
                    if (updateEmp != null) {
                        System.out.println("请输入你需要修改的员工年龄");
                        int updateAge = scanner.nextInt();
                        updateEmp.setAge(updateAge); // 更新年龄
                        testList.updateEmpAge(list, updateEmp); // 更新列表中的员工信息
                    } else {
                        System.out.println("未找到该员工编号对应的员工");
                    }
                    break;
                default:
                    System.out.println("无效的选择，请重新输入");
            }
        }
    }
}

